package com.badibadi.mytools;

import com.badibadi.uniclubber.R;

import android.content.Context;
import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.CharacterStyle;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.widget.EditText;
import android.widget.TextView;
/**
 * TextView 之类的工具
 * @author Administrator
 *
 */
public class WidgetUtils {

	// 添加图片主要用SpannableString和ImageSpan类：
	// Drawable drawable = getResources().getDrawable(R.drawable.icon);
	// drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
	// drawable.getIntrinsicHeight());
	// SpannableString spannable = new
	// SpannableString(getText(R.id.editText1).toString() + "[smile]");
	// ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
	// spannable.setSpan(span,
	// getText(R.id.editText1).length(),getText(R.id.editText1).length()+"[smile]".length(),
	// Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
	// editText.setText(spannable);
	// 将需要的文字高亮显示：
	// public void highlight(int start,int end){
	// SpannableStringBuilder spannable=new
	// SpannableStringBuilder(getText().toString());//用于可变字符串
	// ForegroundColorSpan span=new ForegroundColorSpan(Color.RED);
	// spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
	// setText(spannable);
	// }
	// 加下划线：
	// public void underline(int start,int end){
	// SpannableStringBuilder spannable=new
	// SpannableStringBuilder(getText().toString());
	// CharacterStyle span=new UnderlineSpan();
	// spannable.setSpan(span, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
	// setText(spannable);
	// }
	// 案例：带有\n换行符的字符串都可以用此方法显示2种颜色
	
	/**
	 * 用于设置 TextView 带有如
	 * 第%1$s记 的字符串
	 * @param textView  要设置文字的TextView
	 * @param Str 第%1$s记  字符串
	 * @param XX %1$s那一部分的补充物
	 */
	public static void setMyText(TextView textView,String Str,String XX)
	{
	//	TextView title=(TextView)this.findViewById(R.id.title);
		
		
		String str=String.format(Str, XX);
		textView.setText(str);
	}
	/**
	 * 用于设置EditText带有如
	 * 第%1$s记       的   Hint  字符串
	 * @param editText  
	 * @param Str 
	 * @param XX
	 */
	public static void setMyHintEditText(EditText editText,String Str,String XX)
	{
	//	TextView title=(TextView)this.findViewById(R.id.title);
		
		
		String str=String.format(Str, XX);
		editText.setHint(str);
	}
	
	/**
	 *设置text指定位置颜色
	 * @param context 
	 * @param text 文本内容
	 * @param ColorId 要设置指定位置的颜色的id
	 * @param StartPos 指定要设置的开始的位置
	 * @param textView 一个textView
	 * @param number 显示的是数据数量
	 */
	public static void setTextTheSpecifiedLocationColor(Context context,String text,TextView textView,int ColorId,int StartPos,int number){
//	TextView ts=(TextView)findViewById(R.id.up_pic3_tishi);
//		textView
//    String text=String.format(text,number);
    SpannableStringBuilder style=new SpannableStringBuilder(text);
    //设置指定位置文字的颜色
    style.setSpan(new ForegroundColorSpan(ColorId),StartPos,(StartPos+(""+number).length()),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    textView.setText(style);
	}
//	public static void 
	
	/**
	 * 带有\n换行符的字符串都可以用此方法显示2种颜色
	 * 
	 * @param text
	 * @param color1
	 * @param color2
	 * @return
	 */
	public SpannableStringBuilder highlight(String text, int color1,
			int color2, int fontSize) {
		SpannableStringBuilder spannable = new SpannableStringBuilder(text);// 用于可变字符串
		CharacterStyle span_0 = null, span_1 = null, span_2;
		int end = text.indexOf("\n");
		if (end == -1) {// 如果没有换行符就使用第一种颜色显示
			span_0 = new ForegroundColorSpan(color1);
			spannable.setSpan(span_0, 0, text.length(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		} else {
			span_0 = new ForegroundColorSpan(color1);
			span_1 = new ForegroundColorSpan(color2);
			spannable.setSpan(span_0, 0, end,
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
			spannable.setSpan(span_1, end + 1, text.length(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

			span_2 = new AbsoluteSizeSpan(fontSize);// 字体大小
			spannable.setSpan(span_2, end + 1, text.length(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		}
		return spannable;
	}
}
